(define (f g)
  (g 2))

(display "\n========================================\n")
(display (f square))
(newline)
(display (f (lambda (z) (* z (+ z 1)))))
(newline)
(display (f f))
(newline)
(display "\n========================================\n")

; (f f) 会出错，展开：
; (f g)
; (f (g 2))
; (f (f 2))
; (f (2 2))，出错